package com.raisecom.crawler;

import java.io.IOException;
import java.net.URL;

import org.htmlparser.beans.HTMLLinkBean;
import org.htmlparser.beans.LinkBean;
import org.htmlparser.beans.StringBean;
import org.htmlparser.util.ParserException;

/**
 * 根据APP用户读书进行分类
 * 
 * @author sks
 *
 */
public class HtmlparserCrawler {

	public static void main(String[] args) throws IOException,
			InterruptedException, ParserException {
		String text = getText("http://all.qidian.com/default.aspx");
		URL[] htmlLinks = getHtmlLink("http://all.qidian.com/default.aspx");
		URL[] links = getLink("http://all.qidian.com/default.aspx");

		System.out.println(text);
		for (URL link : htmlLinks) {
			System.out.println(link);
		}

		System.out.println("====================================");
		for (URL link : links) {
			System.out.println(link);
		}
	}

	/**
	 * 根据提供的URL，获取此URL对应网页的纯文本信息
	 * 
	 * @param url
	 *            提供的URL链接
	 * @return RL对应网页的纯文本信息
	 * @throws ParserException
	 */
	public static String getText(String url) throws ParserException {
		StringBean sb = new StringBean();

		// 设置不需要得到页面所包含的链接信息
		sb.setLinks(false);
		// 设置将不间断空格由正规空格所替代
		sb.setReplaceNonBreakingSpaces(true);
		// 设置将一序列空格由一个单一空格所代替
		sb.setCollapse(true);
		// 传入要解析的URL
		sb.setURL(url);
		// 返回解析后的网页纯文本信息
		return sb.getStrings();
	}

	/**
	 * 根据提供的URL，获取此URL对应网页的链接信息
	 * 
	 * @param url
	 *            提供的URL链接
	 * @return RL对应网页的纯文本信息
	 * @throws ParserException
	 */
	public static URL[] getHtmlLink(String url) throws ParserException {
		HTMLLinkBean hlb = new HTMLLinkBean();

		hlb.setURL(url);
		// 返回解析后的网页纯文本信息
		return hlb.getLinks();
	}

	/**
	 * 根据提供的URL，获取此URL对应网页的链接信息
	 * 
	 * @param url
	 *            提供的URL链接
	 * @return RL对应网页的纯文本信息
	 * @throws ParserException
	 */
	public static URL[] getLink(String url) throws ParserException {
		LinkBean lb = new LinkBean();

		lb.setURL(url);
		// 返回解析后的网页纯文本信息
		return lb.getLinks();
	}
}
